package com.hmall.item.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hmall.common.dto.PageDTO;
import com.hmall.item.pojo.Item;

public interface ItemService extends IService<Item> {
    /**
     * 分页查询所有商品
     * @param page 当前页
     * @param size 每页显示的条数
     * @return
     */
    PageDTO<Item> getItemByPage(Integer page, Integer size);


    /**
     * 添加商品
     * @param item
     * @return
     */
    void addItem(Item item);


    /**
     * 通过id查询商品信息
     * @param id
     * @return
     */
    Item findItemById(Long id);

    /**
     * 修改商品上架下架状态信息
     * @param id 商品id
     * @param status 状态
     */
    void updateStatus(Long id, Integer status);

    /**
     * 修改商品信息
     * @param item 商品
     */
    void updateItem(Item item);

    /**
     * 根据id删除商品
     * @param id 商品id
     */
    void deleteItem(Long id);

    /**
     * 根据商品id删除库存
     * @param itemId 商品id
     * @param num 购买商品的数量
     */
    void updateNum(Long itemId, Integer num);


    /**
     * 将订单状态为5的库存加回来
     * @param itemId 订单id
     * @param num 数量
     */
    void updateStock(Long itemId, Integer num);
}
